/**
 * Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 * This file is a part of the CANN Open Software.
 * Licensed under CANN Open Software License Agreement Version 2.0 (the "License").
 * Please refer to the License for details. You may not use this file except in compliance with the License.
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
 * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
 * See LICENSE in the root of the software repository for the full text of the License.
 */

/* !
 * \file weight_quant_batch_matmul_v2_inkernel_tiling_key.h
 * \brief
 */

#ifndef WEIGHT_QUANT_BATCH_MATMUL_V2_INKERNEL_TILING_KEY_H
#define WEIGHT_QUANT_BATCH_MATMUL_V2_INKERNEL_TILING_KEY_H

#include "ascendc/host_api/tiling/template_argument.h"

#define WQBMMV2_SOC_RESERVERD 0 // 平台大类
#define WQBMMV2_SOC_SUPPORT_L0C_TO_OUT 1
#define WQBMMV2_SOC_SUPPORT_L1_TO_BT_BF16 2

#define WQBMMV2_DEFAULT 0

#define WQBMMV2_ALGO_VECTOR_ANTIQUANT 0 // 算法大类
#define WQBMMV2_ALGO_MULTI_SCALE_DEQUANT 1
#define WQBMMV2_ALGO_FIXPIPE_ANTIQUANT 2
#define WQBMMV2_ALGO_CUSTOM 3
 
#define WQBMMV2_SUB_ALGO_VDEFAULT 0 // 算法小类-新
#define WQBMMV2_SUB_ALGO_SPLIT_K 1
#define WQBMMV2_SUB_ALGO_N_FIRST_TAIL_RESPLIT 2
#define WQBMMV2_SUB_ALGO_N_FIRST_BASIC_BLOCK 3

#define WQBMMV2_SUB_ALGO_SERIAL 0 // 算法小类-传统CUSTOM
#define WQBMMV2_SUB_ALGO_GENERAL_PARALLEL 1
#define WQBMMV2_SUB_ALGO_SPLIT_K_CUSTOM 2
#define WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT 3
#define WQBMMV2_SUB_ALGO_MSD_MULTI_CORE 6
#define WQBMMV2_SUB_ALGO_MSD_GROUP 7
#define WQBMMV2_SUB_ALGO_WEIGHT_NZ 8
#define WQBMMV2_SUB_ALGO_MIX_SPLIT_K 9
#define WQBMMV2_SUB_ALGO_ANTI_REG 10

#define WQBMMV2_INNER_PRECISE_ZERO 0 // innerPrecise
#define WQBMMV2_INNER_PRECISE_ONE 1

#define WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD 0 // fixp模板自定义组合
#define WQBMMV2_TEMPLATE_CUSTOM_A_SINGLE_M_SINGLE_K_FULL_LOAD 1

#define WQBMMV2_ANTIQUANT_TYPE_NONE 0 // 反量化类型
#define WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR 1
#define WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL 2
#define WQBMMV2_ANTIQUANT_TYPE_PER_GROUP 3
#define WQBMMV2_ANTIQUANT_TYPE_MX 4

#define WQBMMV2_QUANT_TYPE_NONE 0 // 量化类型
#define WQBMMV2_QUANT_TYPE_PER_TENSOR 1
#define WQBMMV2_QUANT_TYPE_PER_CHANNEL 2
#define WQBMMV2_QUANT_TYPE_PER_GROUP 3
#define WQBMMV2_QUANT_TYPE_MX 4

#define WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL 1 // Extra模板类型
#define WQBMMV2_TEMPLATE_EXTRA_HIGH_PRECISION 2
#define WQBMMV2_TEMPLATE_EXTRA_NOT_USED 3

#define WQBMMV2_FULL_LOAD_MODE_NONE_AB_K 0 // FullLoadMode 当前只会用到0
#define WQBMMV2_FULL_LOAD_MODE_FULL_AKL1 1 
#define WQBMMV2_FULL_LOAD_MODE_FULL_BKL1 2
#define WQBMMV2_FULL_LOAD_MODE_FULL_K 3
#define WQBMMV2_FULL_LOAD_MODE_FULL_K_REORDER_MN 4
#define WQBMMV2_FULL_LOAD_MODE_NOT_USED 5

#define WQBMMV2_BATCH_ZERO 0 // batch
#define WQBMMV2_BATCH_ONE 1

#define PLACEHOLDER_0 0 // placehoder
#define PLACEHOLDER_1 1
#define PLACEHOLDER_2 2
#define PLACEHOLDER_3 3
#define PLACEHOLDER_4 4
#define PLACEHOLDER_5 5

ASCENDC_TPL_ARGS_DECL(
    WeightQuantBatchMatmulV2,
    ASCENDC_TPL_UINT_DECL( // 平台大类
        SOC_VERSION_TYPE, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_SOC_RESERVERD,
        WQBMMV2_SOC_SUPPORT_L0C_TO_OUT,
        WQBMMV2_SOC_SUPPORT_L1_TO_BT_BF16),
    ASCENDC_TPL_UINT_DECL( // 平台小类
        SUB_SOC_VERSION_TYPE, ASCENDC_TPL_2_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_DEFAULT),
    ASCENDC_TPL_UINT_DECL( // 伪量化场景 
        ANTIQUANT_SCENARIO, ASCENDC_TPL_2_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_DEFAULT),
    ASCENDC_TPL_UINT_DECL( // 算法大类
        ALGORITHM, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_ALGO_VECTOR_ANTIQUANT,
        WQBMMV2_ALGO_MULTI_SCALE_DEQUANT,
        WQBMMV2_ALGO_FIXPIPE_ANTIQUANT,
        WQBMMV2_ALGO_CUSTOM),
    ASCENDC_TPL_UINT_DECL( // 算法小类
        SUB_ALGORITHM, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_SUB_ALGO_VDEFAULT,
        WQBMMV2_SUB_ALGO_SPLIT_K,
        WQBMMV2_SUB_ALGO_N_FIRST_TAIL_RESPLIT,
        WQBMMV2_SUB_ALGO_N_FIRST_BASIC_BLOCK),
    ASCENDC_TPL_UINT_DECL( // 算法小类-传统CUSTOM
        SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_SUB_ALGO_SERIAL,
        WQBMMV2_SUB_ALGO_GENERAL_PARALLEL,
        WQBMMV2_SUB_ALGO_SPLIT_K_CUSTOM,
        WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT,
        PLACEHOLDER_4,
        PLACEHOLDER_5,
        WQBMMV2_SUB_ALGO_MSD_MULTI_CORE,
        WQBMMV2_SUB_ALGO_MSD_GROUP,
        WQBMMV2_SUB_ALGO_WEIGHT_NZ,
        WQBMMV2_SUB_ALGO_MIX_SPLIT_K,
        WQBMMV2_SUB_ALGO_ANTI_REG),
    ASCENDC_TPL_UINT_DECL( // innerPrecise
        INNER_PRECISE, ASCENDC_TPL_2_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_INNER_PRECISE_ZERO,
        WQBMMV2_INNER_PRECISE_ONE),
    ASCENDC_TPL_UINT_DECL( // fix模板自定义
        TEMPLATE_CUSTOM, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD,
        WQBMMV2_TEMPLATE_CUSTOM_A_SINGLE_M_SINGLE_K_FULL_LOAD), // CustomNzSplitK:A_MK_FULL_LOAD
    ASCENDC_TPL_UINT_DECL(// api常量保留
        API_CONSTEXPR, ASCENDC_TPL_2_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_DEFAULT),
    ASCENDC_TPL_BOOL_DECL( // 转置场景
        TRANS_A, 0, 1),
    ASCENDC_TPL_BOOL_DECL( // 转置场景
        TRANS_B, 0, 1),
    ASCENDC_TPL_UINT_DECL( // 反量化类型
        ANTIQUANT_TYPE, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_ANTIQUANT_TYPE_NONE,
        WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
        WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL,
        WQBMMV2_ANTIQUANT_TYPE_PER_GROUP,
        WQBMMV2_ANTIQUANT_TYPE_MX),
    ASCENDC_TPL_UINT_DECL( // 量化类型
        QUANT_TYPE, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_QUANT_TYPE_NONE,
        WQBMMV2_QUANT_TYPE_PER_TENSOR,
        WQBMMV2_QUANT_TYPE_PER_CHANNEL,
        WQBMMV2_QUANT_TYPE_PER_GROUP,
        WQBMMV2_QUANT_TYPE_MX),
    ASCENDC_TPL_BOOL_DECL( // 可选输入
        HAS_ANTIQUANT_OFFSET, 0, 1),
    ASCENDC_TPL_BOOL_DECL( // 可选输入
        HAS_BIAS, 0, 1),
    ASCENDC_TPL_BOOL_DECL( // 可选输入
        IS_BIAS_FP32, 0, 1),
    ASCENDC_TPL_BOOL_DECL( // weight的格式
        IS_WEIGHT_NZ, 0, 1),
    ASCENDC_TPL_UINT_DECL( // Extra模板类型
        TEMPLATE_EXTRA, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        PLACEHOLDER_0,
        WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL,
        WQBMMV2_TEMPLATE_EXTRA_HIGH_PRECISION,
        WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
    ASCENDC_TPL_UINT_DECL( // FullLoadMode
        FULL_LOAD_MODE, ASCENDC_TPL_4_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_FULL_LOAD_MODE_NONE_AB_K,
        WQBMMV2_FULL_LOAD_MODE_FULL_AKL1,
        WQBMMV2_FULL_LOAD_MODE_FULL_BKL1,
        WQBMMV2_FULL_LOAD_MODE_FULL_K,
        WQBMMV2_FULL_LOAD_MODE_FULL_K_REORDER_MN,
        WQBMMV2_FULL_LOAD_MODE_NOT_USED),
    ASCENDC_TPL_UINT_DECL( // batch
        BATCH, ASCENDC_TPL_2_BW, ASCENDC_TPL_UI_LIST,
        WQBMMV2_BATCH_ZERO,
        WQBMMV2_BATCH_ONE),
);

#if defined(__CCE_AICORE__)
#if (defined(__CCE_AICORE__) && __CCE_AICORE__ == 220)
#if (                                      \
    defined(ORIG_DTYPE_ANTIQUANT_SCALE) && \
    ((ORIG_DTYPE_ANTIQUANT_SCALE == DT_UINT64) || (ORIG_DTYPE_ANTIQUANT_SCALE == DT_INT64)))
// fixp方案
#if ((ORIG_DTYPE_X == DT_FLOAT16) && (ORIG_DTYPE_Y == DT_FLOAT16) && (ORIG_DTYPE_WEIGHT == DT_INT8))
    ASCENDC_TPL_SEL(
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY),
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_FIXPIPE_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD, WQBMMV2_TEMPLATE_CUSTOM_A_SINGLE_M_SINGLE_K_FULL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0, 1),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), );
#endif

#elif (ORIG_DTYPE_Y == DT_INT8)
    ASCENDC_TPL_SEL(
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR, 
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR,
                WQBMMV2_QUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), );
#else
#if (defined(FORMAT_WEIGHT) && (FORMAT_WEIGHT != FORMAT_FRACTAL_NZ)) 
    ASCENDC_TPL_SEL(
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), 
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL,
                WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL,
                WQBMMV2_TEMPLATE_EXTRA_HIGH_PRECISION),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_GROUP),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MIX_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
    );
#else
    ASCENDC_TPL_SEL(
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO, WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL,
                WQBMMV2_TEMPLATE_EXTRA_HIGH_PRECISION),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO,
                WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_VECTOR_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD,
                WQBMMV2_TEMPLATE_CUSTOM_A_SINGLE_M_SINGLE_K_FULL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), );
#endif
#endif
#else
    ASCENDC_TPL_SEL(
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NONE_AB_K),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), 
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NONE_AB_K),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ONE),
        ), );
#endif
#else // tiling used
    ASCENDC_TPL_SEL(
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY),
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_FIXPIPE_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD, WQBMMV2_TEMPLATE_CUSTOM_A_SINGLE_M_SINGLE_K_FULL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0, 1),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR, 
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR,
                WQBMMV2_QUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), 
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_CUSTOM_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL,
                WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL,
                WQBMMV2_TEMPLATE_EXTRA_HIGH_PRECISION),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_GROUP),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MIX_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO, WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL,
                WQBMMV2_TEMPLATE_EXTRA_HIGH_PRECISION),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_MSD_MULTI_CORE),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_PER_TENSOR),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_MSD_GENERAL),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_MULTI_SCALE_DEQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO,
                WQBMMV2_INNER_PRECISE_ONE),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_VECTOR_ANTIQUANT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SPLIT_K),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_SERIAL),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD,
                WQBMMV2_TEMPLATE_CUSTOM_A_SINGLE_M_SINGLE_K_FULL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 1),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 1),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NOT_USED),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ),
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NONE_AB_K),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ZERO),
        ), 
        ASCENDC_TPL_ARGS_SEL(
            ASCENDC_TPL_UINT_SEL(SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_SOC_SUPPORT_L0C_TO_OUT),
            ASCENDC_TPL_UINT_SEL(SUB_SOC_VERSION_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_SCENARIO, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_UINT_SEL(ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_ALGO_CUSTOM),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_VDEFAULT),
            ASCENDC_TPL_UINT_SEL(SUB_ALGORITHM_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_SUB_ALGO_WEIGHT_NZ),
            ASCENDC_TPL_UINT_SEL(INNER_PRECISE, ASCENDC_TPL_UI_LIST, WQBMMV2_INNER_PRECISE_ZERO),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_CUSTOM, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_CUSTOM_A_NORMAL_LOAD),
            ASCENDC_TPL_UINT_SEL(API_CONSTEXPR, ASCENDC_TPL_UI_LIST, WQBMMV2_DEFAULT),
            ASCENDC_TPL_BOOL_SEL(TRANS_A, 0, 1),
            ASCENDC_TPL_BOOL_SEL(TRANS_B, 0),
            ASCENDC_TPL_UINT_SEL(ANTIQUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_ANTIQUANT_TYPE_PER_TENSOR,
                WQBMMV2_ANTIQUANT_TYPE_PER_CHANNEL, WQBMMV2_ANTIQUANT_TYPE_PER_GROUP),
            ASCENDC_TPL_UINT_SEL(QUANT_TYPE, ASCENDC_TPL_UI_LIST, WQBMMV2_QUANT_TYPE_NONE),
            ASCENDC_TPL_BOOL_SEL(HAS_ANTIQUANT_OFFSET, 0, 1),
            ASCENDC_TPL_BOOL_SEL(HAS_BIAS, 0),
            ASCENDC_TPL_BOOL_SEL(IS_BIAS_FP32, 0),
            ASCENDC_TPL_BOOL_SEL(IS_WEIGHT_NZ, 0),
            ASCENDC_TPL_UINT_SEL(TEMPLATE_EXTRA, ASCENDC_TPL_UI_LIST, WQBMMV2_TEMPLATE_EXTRA_NOT_USED),
            ASCENDC_TPL_UINT_SEL(FULL_LOAD_MODE, ASCENDC_TPL_UI_LIST, WQBMMV2_FULL_LOAD_MODE_NONE_AB_K),
            ASCENDC_TPL_UINT_SEL(BATCH, ASCENDC_TPL_UI_LIST, WQBMMV2_BATCH_ONE),
        ),
    );
#endif
#endif
